﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class РасчетСебестоимостиВыпускаРаспределениеПоПеределам
	{
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ РАСПРЕДЕЛЕНИЯ ПРОДУКЦИИ И ЗАТРАТ ПО ПЕРЕДЕЛАМ
		////////////////////////////////////////////////////////////////////////////////
		// ФУНЦИИ ФОРМИРОВАНИЯ ЗАПРОСА ДЛЯ РАСПРЕДЕЛЕНИЯ ПРОДУКЦИИ И ЗАТРАТ ПО ПЕРЕДЕЛАМ
		// Функция формирует текст запроса по материальным производственным расходам.
		//
		// Возвращаемое значение:
		//   Текст – текст запроса по материальным производственным расходам.
		//

		public object СформироватьТекстЗапросаМатериальныеПроизводственныеРасходы(/**/)
		{
			/*ТекстЗапроса = "
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	Ложь КАК НематериальныеЗатраты,
	|	Ложь КАК КосвенныеЗатраты,
	|	ЗатратыНаВыпуск.Подразделение,
	|	ЗатратыНаВыпуск.Подразделение.Представление КАК ПодразделениеПредставление,
	|	ЗатратыНаВыпуск.НоменклатурнаяГруппа,
	|	ЗатратыНаВыпуск.СтатьяЗатрат,
	|	
	|	ЗатратыНаВыпуск.Продукция,
	|	ЗатратыНаВыпуск.ХарактеристикаПродукции,
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.Продукция.ВестиУчетПоСериямВНЗП ТОГДА
	|		ЗатратыНаВыпуск.СерияПродукции
	|	ИНАЧЕ
	|		ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
	|	КОНЕЦ КАК СерияПродукции,
	|	
	|	ЗатратыНаВыпуск.Затрата,
	|	ЗатратыНаВыпуск.ХарактеристикаЗатраты,
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.Затрата.ВестиУчетПоСериямВНЗП ТОГДА
	|		ЗатратыНаВыпуск.СерияЗатраты
	|	ИНАЧЕ
	|		ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
	|	КОНЕЦ КАК СерияЗатраты,
	|	
	|	ЗатратыНаВыпуск.Затрата.Представление КАК ЗатратаПредставление,
	|	ЗатратыНаВыпуск.ХарактеристикаЗатраты.Представление КАК ХарактеристикаЗатратыПредставление,
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.Затрата.ВестиУчетПоСериямВНЗП ТОГДА
	|		ЗатратыНаВыпуск.СерияЗатраты.Представление
	|	ИНАЧЕ
	|		ПРЕДСТАВЛЕНИЕ(ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка))
	|	КОНЕЦ КАК СерияЗатратыПредставление,
	|	
	|	ЕСТЬNULL(ПорядокЗакрытия.НомерПередела, 0) КАК ПодразделениеНомерПередела,
	|	ЕСТЬNULL(РегистрВстречныйВыпуск.ВстречныйВыпуск, Ложь) КАК ВстречныйВыпуск,
	|	
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.КодОперации В (&КодыОперацииКорректировка) ТОГДА
	|		Истина
	|	ИНАЧЕ
	|		Ложь
	|	КОНЕЦ КАК КорректировкаНЗП,
	|	
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.КодОперации В (&КодыОперацииВозврат) ТОГДА
	|		Истина
	|	ИНАЧЕ
	|		Ложь
	|	КОНЕЦ КАК ВозвратИзНЗП,
	|	
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.КодОперации В (&КодыОперацииСписание) ТОГДА
	|		Истина
	|	ИНАЧЕ
	|		Ложь
	|	КОНЕЦ КАК СписаниеНЗП,
	|	
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.КодОперации В (&КодыОперацииОприходование) ТОГДА
	|		Истина
	|	ИНАЧЕ
	|		Ложь
	|	КОНЕЦ КАК ОприходованиеНЗП
	|ИЗ
	|	РегистрНакопления.ЗатратыНаВыпускПродукции%СуффиксУчета% КАК ЗатратыНаВыпуск
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ
	|			ВстречныйВыпускПродукции.Продукция,
	|			ВстречныйВыпускПродукции.Затрата,
	|			ВыпускПродукции.ХарактеристикаПродукции КАК ХарактеристикаЗатраты,
	|			ВыпускПродукции.СерияПродукции КАК СерияЗатраты,
	|			Истина КАК ВстречныйВыпуск
	|		ИЗ
	|			РегистрСведений.ВстречныйВыпускПродукцииУслуг.СрезПоследних(&КонДата, 
	|				) КАК ВстречныйВыпускПродукции
	|			
	|			ЛЕВОЕ СОЕДИНЕНИЕ (
	|				ВЫБРАТЬ РАЗЛИЧНЫЕ
	|					ВыпускПродукции.Продукция,
	|					ВыпускПродукции.ХарактеристикаПродукции,
	|					ВЫБОР КОГДА ВыпускПродукции.Продукция.ВестиУчетПоСериямВНЗП ТОГДА
	|						ВыпускПродукции.СерияПродукции
	|					ИНАЧЕ
	|						ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
	|					КОНЕЦ КАК СерияПродукции
	|				ИЗ
	|					РегистрНакопления.ВыпускПродукции%СуффиксУчета% КАК ВыпускПродукции
	|				ГДЕ
	|					ВыпускПродукции.Период МЕЖДУ &НачДата И &КонДата
	|					И ВыпускПродукции.КодОперации <> ЗНАЧЕНИЕ(Перечисление.КодыОперацийВыпускПродукции.ВыпускПродукцииПоФиксированнойСтоимости)
	|					//ДляРеглУчета И ВыпускПродукции.Организация = &Организация
	|					
	|				) КАК ВыпускПродукции
	|			ПО
	|				ВстречныйВыпускПродукции.Затрата = ВыпускПродукции.Продукция
	|
	|		ГДЕ
	|			ВстречныйВыпускПродукции.СпособОценкиСтоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОценкиСтоимостиВстречногоВыпуска.ПоРасчетнойСтоимости)
	|			И Не ВыпускПродукции.Продукция ЕСТЬ NULL
	|
	|		) КАК РегистрВстречныйВыпуск
	|	ПО
	|		ЗатратыНаВыпуск.Продукция = РегистрВстречныйВыпуск.Продукция
	|		И ЗатратыНаВыпуск.Затрата = РегистрВстречныйВыпуск.Затрата
	|		И ЗатратыНаВыпуск.ХарактеристикаЗатраты = РегистрВстречныйВыпуск.ХарактеристикаЗатраты
	|		И ЗатратыНаВыпуск.СерияЗатраты = РегистрВстречныйВыпуск.СерияЗатраты
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрСведений.ПорядокЗакрытияПодразделений%СуффиксОрганизаций%.СрезПоследних(&КонДата, 
	|			Подразделение.ВидПодразделения В (&ВидыПодразделений)
	|			//ДляРеглУчета И Организация = &Организация 
	|			) КАК ПорядокЗакрытия
	|	ПО
	|		ЗатратыНаВыпуск.Подразделение = ПорядокЗакрытия.Подразделение
	|			
	|ГДЕ 
	|	ЗатратыНаВыпуск.Период МЕЖДУ &НачДата И &КонДата
	|	И Не ЗатратыНаВыпуск.Продукция = &ПустСсылка
	|	И ЗатратыНаВыпуск.КодОперации  В (&КодыОпераций)
	|	И Не ЗатратыНаВыпуск.Затрата ССЫЛКА Перечисление.ХарактерЗатрат
	|	И ЗатратыНаВыпуск.СтатьяЗатрат.ВидЗатрат = &Материальные
	|	//ДляРеглУчета И ЗатратыНаВыпуск.Организация = &Организация
	|
	|";*/
			return null;
		}
		// СформироватьТекстЗапросаМатериальныеПроизводственныеРасходы()
		// Функция формирует текст запроса по нематериальным производственным расходам.
		//
		// Возвращаемое значение:
		//   Текст – текст запроса по нематериальным производственным расходам.
		//

		public object СформироватьТекстЗапросаНематериальныеПроизводственныеРасходы(/**/)
		{
			/*ТекстЗапроса = "
	|
	|// Выпуск услуг в производство по нематериальной статье затрат.
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	Истина, // НематериальныеЗатраты
	|	Ложь, // КосвенныеЗатраты
	|	ЗатратыНаВыпуск.Подразделение,
	|	ЗатратыНаВыпуск.Подразделение.Представление КАК ПодразделениеПредставление,
	|	ЗатратыНаВыпуск.НоменклатурнаяГруппа,
	|	ЗатратыНаВыпуск.СтатьяЗатрат,
	|
	|	ЗатратыНаВыпуск.Продукция,
	|	ЗатратыНаВыпуск.ХарактеристикаПродукции,
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.Продукция.ВестиУчетПоСериямВНЗП ТОГДА
	|		ЗатратыНаВыпуск.СерияПродукции
	|	ИНАЧЕ
	|		ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
	|	КОНЕЦ КАК СерияПродукции,
	|	
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.Затрата ССЫЛКА Справочник.СпособыРаспределенияЗатратНаВыпуск ТОГДА
	|		ЗатратыНаВыпуск.Затрата
	|	ИНАЧЕ
	|		ВыпускПродукции.Затрата
	|	КОНЕЦ,
	|	
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.Затрата ССЫЛКА Справочник.СпособыРаспределенияЗатратНаВыпуск ТОГДА
	|		&ПустаяХарактеристика
	|	ИНАЧЕ
	|		ВыпускПродукции.ХарактеристикаЗатраты
	|	КОНЕЦ,
	|	
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.Затрата ССЫЛКА Справочник.СпособыРаспределенияЗатратНаВыпуск ТОГДА
	|		&ПустаяСерия
	|	ИНАЧЕ
	|		ВыпускПродукции.СерияЗатраты
	|	КОНЕЦ,
	|	
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.Затрата ССЫЛКА Справочник.СпособыРаспределенияЗатратНаВыпуск ТОГДА
	|		ЗатратыНаВыпуск.Затрата.Представление
	|	ИНАЧЕ
	|		ВыпускПродукции.Затрата.Представление
	|	КОНЕЦ,
	|	
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.Затрата ССЫЛКА Справочник.СпособыРаспределенияЗатратНаВыпуск ТОГДА
	|		Представление(&ПустаяХарактеристика)
	|	ИНАЧЕ
	|		ВыпускПродукции.ХарактеристикаЗатраты.Представление
	|	КОНЕЦ,
	|	
	|	ВЫБОР КОГДА ЗатратыНаВыпуск.Затрата ССЫЛКА Справочник.СпособыРаспределенияЗатратНаВыпуск ТОГДА
	|		Представление(&ПустаяСерия)
	|	ИНАЧЕ
	|		ВыпускПродукции.СерияЗатраты.Представление
	|	КОНЕЦ,
	|	
	|	ЕСТЬNULL(ПорядокЗакрытия.НомерПередела, 0) КАК ПодразделениеНомерПередела,
	|	ЕСТЬNULL(РегистрВстречныйВыпуск.ВстречныйВыпуск, Ложь) КАК ВстречныйВыпуск,
	|	Ложь,
	|	Ложь,
	|	Ложь,
	|	Ложь
	|ИЗ
	|	РегистрНакопления.ЗатратыНаВыпускПродукции%СуффиксУчета% КАК ЗатратыНаВыпуск
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрСведений.ПорядокЗакрытияПодразделений%СуффиксОрганизаций%.СрезПоследних(&КонДата, 
	|			Подразделение.ВидПодразделения В (&ВидыПодразделений)
	|			//ДляРеглУчета И Организация = &Организация 
	|			) КАК ПорядокЗакрытия
	|	ПО
	|		ЗатратыНаВыпуск.Подразделение = ПорядокЗакрытия.Подразделение
	|		
	|	ЛЕВОЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ РАЗЛИЧНЫЕ
	|			ВыпускПродукции.ПодразделениеПолучатель,
	|			ВыпускПродукции.СтатьяЗатратПолучатель,
	|			ВыпускПродукции.НоменклатурнаяГруппаПолучатель,
	|			ВыпускПродукции.ЗаказПолучатель,
	|			//ДляРеглУчета ВыпускПродукции.СчетДт,
	|			ВыпускПродукции.Продукция КАК Затрата,
	|			ВыпускПродукции.ХарактеристикаПродукции КАК ХарактеристикаЗатраты,
	|			ВыпускПродукции.СерияПродукции КАК СерияЗатраты
	|		ИЗ
	|			РегистрНакопления.ВыпускПродукции%СуффиксУчета% КАК ВыпускПродукции
	|				
	|		ГДЕ
	|			ВыпускПродукции.Период МЕЖДУ &НачДата И &КонДата
	|			И ВыпускПродукции.КодОперации = &КодОперацииНаПроизводство
	|			И ВыпускПродукции.СтатьяЗатратПолучатель.ВидЗатрат <> &Материальные
	|			//ДляРеглУчета И ВыпускПродукции.Организация = &Организация
	|
	|		) КАК ВыпускПродукции
	|	ПО
	|		ЗатратыНаВыпуск.Подразделение = ВыпускПродукции.ПодразделениеПолучатель
	|		И ЗатратыНаВыпуск.СтатьяЗатрат = ВыпускПродукции.СтатьяЗатратПолучатель
	|		И ЗатратыНаВыпуск.НоменклатурнаяГруппа = ВыпускПродукции.НоменклатурнаяГруппаПолучатель
	|		И ЗатратыНаВыпуск.Заказ = ВыпускПродукции.ЗаказПолучатель
	|		//ДляРеглУчета И ЗатратыНаВыпуск.СчетУчета = ВыпускПродукции.СчетДт
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ
	|			ВстречныйВыпускПродукции.Продукция,
	|			ВстречныйВыпускПродукции.Затрата,
	|			Истина КАК ВстречныйВыпуск
	|		ИЗ
	|			РегистрСведений.ВстречныйВыпускПродукцииУслуг.СрезПоследних(&КонДата, 
	|				) КАК ВстречныйВыпускПродукции
	|		ГДЕ
	|			ВстречныйВыпускПродукции.СпособОценкиСтоимости = &СпособОценкиСтоимости
	|			
	|		) КАК РегистрВстречныйВыпуск
	|	ПО
	|		ЗатратыНаВыпуск.Продукция = РегистрВстречныйВыпуск.Продукция
	|		И ВыпускПродукции.Затрата = РегистрВстречныйВыпуск.Затрата
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ РАЗЛИЧНЫЕ
	|			РаспределениеЗатрат.Подразделение,
	|			РаспределениеЗатрат.НоменклатурнаяГруппа,
	|			РаспределениеЗатрат.СтатьяЗатрат
	|		ИЗ
	|			РегистрСведений.РаспределениеЗатратПоПеределам%СуффиксОрганизаций% КАК РаспределениеЗатрат
	|		ГДЕ 
	|			РаспределениеЗатрат.Период МЕЖДУ &НачДата И &КонДата
	|			//ДляРеглУчета И РаспределениеЗатрат.Организация = &Организация
	|		) КАК РаспределениеЗатрат
	|	ПО
	|		ЗатратыНаВыпуск.Подразделение = РаспределениеЗатрат.Подразделение
	|		И ЗатратыНаВыпуск.НоменклатурнаяГруппа = РаспределениеЗатрат.НоменклатурнаяГруппа
	|		И ЗатратыНаВыпуск.СтатьяЗатрат = РаспределениеЗатрат.СтатьяЗатрат
	|			
	|ГДЕ 
	|	ЗатратыНаВыпуск.Период МЕЖДУ &НачДата И &КонДата
	|	И Не ЗатратыНаВыпуск.Продукция = &ПустСсылка
	|	И ЗатратыНаВыпуск.КодОперации  В (&КодыОпераций)
	|	И Не ЗатратыНаВыпуск.Затрата ССЫЛКА Перечисление.ХарактерЗатрат
	|	И ЗатратыНаВыпуск.СтатьяЗатрат.ВидЗатрат <> &Материальные
	|	И РаспределениеЗатрат.СтатьяЗатрат ЕСТЬ NULL
	|	//ДляРеглУчета И ЗатратыНаВыпуск.Организация = &Организация
	|
	|";*/
			return null;
		}
		// СформироватьТекстЗапросаНематериальныеПроизводственныеРасходы()
		// Функция формирует текст запроса по нематериальным производственным расходам (налоговый учет).
		//
		// Возвращаемое значение:
		//   Текст – текст запроса по нематериальным производственным расходам.
		//

		public object СформироватьТекстЗапросаНематериальныеПроизводственныеРасходыНУ(/**/)
		{
			/*ТекстЗапроса = "
	|// Выпуск услуг в производство по нематериальной статье затрат.
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	Истина КАК НематериальныеЗатраты,
	|	Ложь КАК КосвенныеЗатраты,
	|	ЗатратыНаВыпуск.Подразделение,
	|	ЗатратыНаВыпуск.Подразделение.Представление КАК ПодразделениеПредставление,
	|	ЗатратыНаВыпуск.НоменклатурнаяГруппа,
	|	ЗатратыНаВыпуск.СтатьяЗатрат,
	|
	|	ВЫБОР КОГДА РаспределениеПродукции.Продукция ЕСТЬ NULL ТОГДА
	|		ЗатратыНаВыпуск.Продукция
	|	ИНАЧЕ
	|		Неопределено
	|	КОНЕЦ КАК Продукция,
	|	ВЫБОР КОГДА РаспределениеПродукции.ХарактеристикаПродукции ЕСТЬ NULL ТОГДА
	|		ЗатратыНаВыпуск.ХарактеристикаПродукции
	|	ИНАЧЕ
	|		Неопределено
	|	КОНЕЦ КАК ХарактеристикаПродукции,
	|	ВЫБОР КОГДА РаспределениеПродукции.СерияПродукции ЕСТЬ NULL ТОГДА
	|		ЗатратыНаВыпуск.СерияПродукции
	|	ИНАЧЕ
	|		Неопределено
	|	КОНЕЦ КАК СерияПродукции,
	|	
	|	ЗатратыНаВыпуск.Затрата,
	|	ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК ХарактеристикаЗатраты,
	|	ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК СерияЗатраты,
	|	
	|	ЗатратыНаВыпуск.Затрата.Представление КАК ЗатратаПредставление,
	|	Представление(ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК ХарактеристикаЗатратыПредставление,
	|	Представление(ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)) КАК СерияЗатратыПредставление,
	|	
	|	ЕСТЬNULL(ПорядокЗакрытия.НомерПередела, 0) КАК ПодразделениеНомерПередела,
	|	Ложь КАК ВстречныйВыпуск,
	|	Ложь КАК КорректировкаНЗП,
	|	Ложь КАК ВозвратИзНЗП,
	|	Ложь КАК СписаниеНЗП,
	|	Ложь КАК ОприходованиеНЗП
	|ИЗ
	|	РегистрНакопления.ЗатратыНаВыпускПродукции%СуффиксУчета% КАК ЗатратыНаВыпуск
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрСведений.ПорядокЗакрытияПодразделений%СуффиксОрганизаций%.СрезПоследних(&КонДата, 
	|			Подразделение.ВидПодразделения В (&ВидыПодразделений)
	|			//ДляРеглУчета И Организация = &Организация 
	|			) КАК ПорядокЗакрытия
	|	ПО
	|		ЗатратыНаВыпуск.Подразделение = ПорядокЗакрытия.Подразделение
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ РАЗЛИЧНЫЕ
	|			РаспределениеПродукции.Подразделение,
	|			РаспределениеПродукции.Продукция,
	|			РаспределениеПродукции.ХарактеристикаПродукции,
	|			РаспределениеПродукции.СерияПродукции,
	|			РаспределениеПродукции.Продукция.ВестиУчетПоСериямВНЗП КАК ВестиУчетПоСериямВНЗП
	|		ИЗ
	|			РегистрСведений.РаспределениеПродукцииПоПеределам%СуффиксОрганизаций% КАК РаспределениеПродукции
	|		ГДЕ 
	|			РаспределениеПродукции.Период МЕЖДУ &НачДата И &КонДата
	|			И Не КорректировкаНЗП
	|			И Не ОприходованиеНЗП
	|			И Не ВозвратИзНЗП
	|			//ДляРеглУчета И РаспределениеПродукции.Организация = &Организация
	|		) КАК РаспределениеПродукции
	|	ПО
	|		ЗатратыНаВыпуск.Подразделение = РаспределениеПродукции.Подразделение
	|		И ЗатратыНаВыпуск.Продукция = РаспределениеПродукции.Продукция
	|		И ЗатратыНаВыпуск.ХарактеристикаПродукции = РаспределениеПродукции.ХарактеристикаПродукции
	|		И (ЗатратыНаВыпуск.СерияПродукции = РаспределениеПродукции.СерияПродукции
	|			И РаспределениеПродукции.ВестиУчетПоСериямВНЗП
	|			ИЛИ Не РаспределениеПродукции.ВестиУчетПоСериямВНЗП)
	|		
	|ГДЕ 
	|	ЗатратыНаВыпуск.Период МЕЖДУ &НачДата И &КонДата
	|	И Не ЗатратыНаВыпуск.Продукция = &ПустСсылка
	|	И ЗатратыНаВыпуск.КодОперации  В (&КодыОпераций)
	|	И Не ЗатратыНаВыпуск.Затрата ССЫЛКА Перечисление.ХарактерЗатрат
	|	И ЗатратыНаВыпуск.СтатьяЗатрат.ВидЗатрат <> &Материальные
	|	//ДляРеглУчета И ЗатратыНаВыпуск.Организация = &Организация
	|	
	|	И (
	|		ЗатратыНаВыпуск.Подразделение,
	|		ЗатратыНаВыпуск.НоменклатурнаяГруппа,
	|		ЗатратыНаВыпуск.СтатьяЗатрат
	|		) Не В (
	|		ВЫБРАТЬ РАЗЛИЧНЫЕ
	|			РаспределениеЗатрат.Подразделение,
	|			РаспределениеЗатрат.НоменклатурнаяГруппа,
	|			РаспределениеЗатрат.СтатьяЗатрат
	|		ИЗ
	|			РегистрСведений.РаспределениеЗатратПоПеределам%СуффиксОрганизаций% КАК РаспределениеЗатрат
	|		ГДЕ 
	|			РаспределениеЗатрат.Период МЕЖДУ &НачДата И &КонДата
	|			//ДляРеглУчета И РаспределениеЗатрат.Организация = &Организация
	|		)
	|";*/
			return null;
		}
		// СформироватьТекстЗапросаНематериальныеПроизводственныеРасходы()
		// Функция формирует текст запроса по выпуску без прямых расходов.
		//
		// Возвращаемое значение:
		//   Текст – текст запроса по выпуску без прямых расходов.
		//

		public object СформироватьТекстЗапросаВыпускБезПрямыхРасходов(/**/)
		{
			/*ТекстЗапроса = "
	|
	|// Выпуск без прямых расходов
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	Ложь, // НематериальныеЗатраты
	|	Ложь, // КосвенныеЗатраты
	|	ВыпускПродукции.Подразделение,
	|	ВыпускПродукции.Подразделение.Представление,
	|	ВыпускПродукции.НоменклатурнаяГруппа,
	|	Неопределено,
	|	
	|	ВыпускПродукции.Продукция,
	|	ВыпускПродукции.ХарактеристикаПродукции,
	|	ВЫБОР КОГДА ВыпускПродукции.Продукция.ВестиУчетПоСериямВНЗП ТОГДА
	|		ВыпускПродукции.СерияПродукции
	|	ИНАЧЕ
	|		ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
	|	КОНЕЦ КАК СерияПродукции,
	|	
	|	Неопределено,
	|	&ПустаяХарактеристика,
	|	&ПустаяСерия,
	|	
	|	Неопределено,
	|	Неопределено,
	|	Неопределено,
	|	
	|	ЕСТЬNULL(ПорядокЗакрытия.НомерПередела, 0) КАК ПодразделениеНомерПередела,
	|	Ложь, // ВстречныйВыпуск
	|	Ложь, // КорректировкаНЗП
	|	Ложь, // ВозвратИзНЗП
	|	Ложь, // СписаниеНЗП
	|	Ложь // ОприходованиеНЗП
	|ИЗ
	|	РегистрНакопления.ВыпускПродукции%СуффиксУчета% КАК ВыпускПродукции
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ РАЗЛИЧНЫЕ
	|			ЗатратыНаВыпуск.Подразделение,
	|			ЗатратыНаВыпуск.НоменклатурнаяГруппа,
	|			ЗатратыНаВыпуск.Продукция,
	|			ЗатратыНаВыпуск.ХарактеристикаПродукции,
	|			ЗатратыНаВыпуск.СерияПродукции
	|		ИЗ
	|			РегистрНакопления.ЗатратыНаВыпускПродукции%СуффиксУчета% КАК ЗатратыНаВыпуск
	|		ГДЕ 
	|			ЗатратыНаВыпуск.Период МЕЖДУ &НачДата И &КонДата
	|			И Не ЗатратыНаВыпуск.Продукция = &ПустСсылка
	|			И ЗатратыНаВыпуск.КодОперации  В (&КодыОпераций)
	|			//ДляРеглУчета И ЗатратыНаВыпуск.Организация = &Организация
	|			
	|		) КАК ЗатратыНаВыпуск
	|	ПО
	|		ВыпускПродукции.Подразделение = ЗатратыНаВыпуск.Подразделение
	|		И ВыпускПродукции.НоменклатурнаяГруппа = ЗатратыНаВыпуск.НоменклатурнаяГруппа
	|		И ВыпускПродукции.Продукция = ЗатратыНаВыпуск.Продукция
	|		И ВыпускПродукции.ХарактеристикаПродукции = ЗатратыНаВыпуск.ХарактеристикаПродукции
	|		И ВыпускПродукции.СерияПродукции = ЗатратыНаВыпуск.СерияПродукции
	|		
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрСведений.ПорядокЗакрытияПодразделений%СуффиксОрганизаций%.СрезПоследних(&КонДата, 
	|			Подразделение.ВидПодразделения В (&ВидыПодразделений)
	|			//ДляРеглУчета И Организация = &Организация 
	|			) КАК ПорядокЗакрытия
	|	ПО
	|		ВыпускПродукции.Подразделение = ПорядокЗакрытия.Подразделение	
	|ГДЕ
	|	ВыпускПродукции.Период МЕЖДУ &НачДата И &КонДата
	|	И ВыпускПродукции.КодОперации <> &КодФиксСтоим
	|	И ЗатратыНаВыпуск.Продукция ЕСТЬ NULL
	|	//ДляРеглУчета И ВыпускПродукции.Организация = &Организация
	|";*/
			return null;
		}
		// СформироватьТекстЗапросаВыпускБезПрямыхРасходов()
		// Функция формирует текст запроса по выпуску на распределяемые расходы.
		//
		// Возвращаемое значение:
		//   Текст – текст запроса по выпуску на распределяемые расходы.
		//

		public object СформироватьТекстЗапросаВыпускНаРаспределяемыеРасходы(/**/)
		{
			/*ТекстЗапроса = "
	|
	|// Выпуск продукции (услуг) на общепроизводственные расходы.
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	Истина, // НематериальныеЗатраты
	|	Истина, // КосвенныеЗатраты
	|	ВыпускПродукции.Подразделение,
	|	ВыпускПродукции.Подразделение.Представление КАК ПодразделениеПредставление,
	|	ВыпускПродукции.НоменклатурнаяГруппа,
	|	ВыпускПродукцииНаЗатраты.СтатьяЗатратПолучатель,
	|	
	|	ВыпускПродукции.Продукция,
	|	ВыпускПродукции.ХарактеристикаПродукции,
	|	ВЫБОР КОГДА ВыпускПродукции.Продукция.ВестиУчетПоСериямВНЗП ТОГДА
	|		ВыпускПродукции.СерияПродукции
	|	ИНАЧЕ
	|		ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
	|	КОНЕЦ КАК СерияПродукции,
	|	
	|	ВыпускПродукцииНаЗатраты.Затрата,
	|	ВыпускПродукцииНаЗатраты.ХарактеристикаЗатраты,
	|	ВыпускПродукцииНаЗатраты.СерияЗатраты,
	|	
	|	ВыпускПродукцииНаЗатраты.Затрата.Представление,
	|	ВыпускПродукцииНаЗатраты.ХарактеристикаЗатраты.Представление,
	|	ВыпускПродукцииНаЗатраты.СерияЗатраты.Представление,
	|	
	|	ЕСТЬNULL(ПорядокЗакрытия.НомерПередела, 0) КАК ПодразделениеНомерПередела,
	|	ЕСТЬNULL(РегистрВстречныйВыпуск.ВстречныйВыпуск, Ложь) КАК ВстречныйВыпуск,
	|	Ложь, // КорректировкаНЗП
	|	Ложь, // ВозвратИзНЗП
	|	Ложь, // СписаниеНЗП
	|	Ложь // ОприходованиеНЗП
	|ИЗ
	|	РегистрНакопления.ВыпускПродукции%СуффиксУчета% КАК ВыпускПродукции
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрСведений.ПорядокЗакрытияПодразделений%СуффиксОрганизаций%.СрезПоследних(&КонДата, 
	|			Подразделение.ВидПодразделения В (&ВидыПодразделений)
	|			//ДляРеглУчета И Организация = &Организация 
	|			) КАК ПорядокЗакрытия
	|	ПО
	|		ВыпускПродукции.Подразделение = ПорядокЗакрытия.Подразделение
	|		
	|	ЛЕВОЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ РАЗЛИЧНЫЕ
	|			ВыпускПродукции.ПодразделениеПолучатель,
	|			ВыпускПродукции.СтатьяЗатратПолучатель,
	|			ВыпускПродукции.НоменклатурнаяГруппаПолучатель,
	|			ВыпускПродукции.ЗаказПолучатель,
	|			//ДляРеглУчета ВыпускПродукции.СчетДт,
	|			ВыпускПродукции.Продукция КАК Затрата,
	|			ВыпускПродукции.ХарактеристикаПродукции КАК ХарактеристикаЗатраты,
	|			ВыпускПродукции.СерияПродукции КАК СерияЗатраты
	|		ИЗ
	|			РегистрНакопления.ВыпускПродукции%СуффиксУчета% КАК ВыпускПродукции
	|				
	|		ГДЕ
	|			ВыпускПродукции.Период МЕЖДУ &НачДата И &КонДата
	|			И ВыпускПродукции.КодОперации В (&МассивКодыОперацийСписаниеНаЗатраты)
	|			//ДляРеглУчета И ВыпускПродукции.Организация = &Организация
	|			//ДляУпрУчета И ВыпускПродукции.СтатьяЗатратПолучатель.ХарактерЗатрат = &ОбщепроизводственныеРасходы
	|			//ДляБухУчета И ВыпускПродукции.СчетДт В ИЕРАРХИИ (&СчетОбщепроизводственныеРасходы)
	|
	|		) КАК ВыпускПродукцииНаЗатраты
	|	ПО
	|		ВыпускПродукции.Подразделение = ВыпускПродукцииНаЗатраты.ПодразделениеПолучатель
	|		И (ВыпускПродукции.НоменклатурнаяГруппа = ВыпускПродукцииНаЗатраты.НоменклатурнаяГруппаПолучатель
	|			ИЛИ ВыпускПродукцииНаЗатраты.НоменклатурнаяГруппаПолучатель = &ПустаяНоменклатурнаяГруппа)
	|		И (ВыпускПродукции.Заказ = ВыпускПродукцииНаЗатраты.ЗаказПолучатель
	|			ИЛИ ВыпускПродукцииНаЗатраты.ЗаказПолучатель = Неопределено)
	|			
	|	ЛЕВОЕ СОЕДИНЕНИЕ (
	|		ВЫБРАТЬ
	|			ВстречныйВыпускПродукции.Продукция КАК Продукция,
	|			ВстречныйВыпускПродукции.Затрата КАК Затрата,
	|			Истина КАК ВстречныйВыпуск
	|		ИЗ
	|			РегистрСведений.ВстречныйВыпускПродукцииУслуг.СрезПоследних(&КонДата, 
	|				) КАК ВстречныйВыпускПродукции
	|		ГДЕ
	|			ВстречныйВыпускПродукции.СпособОценкиСтоимости = &СпособОценкиСтоимости
	|			
	|		) КАК РегистрВстречныйВыпуск
	|	ПО
	|		ВыпускПродукции.Продукция = РегистрВстречныйВыпуск.Продукция
	|		И ВыпускПродукцииНаЗатраты.Затрата = РегистрВстречныйВыпуск.Затрата
	|			
	|ГДЕ 
	|	ВыпускПродукции.Период МЕЖДУ &НачДата И &КонДата
	|	И ВыпускПродукции.КодОперации <> &КодФиксСтоим
	|	И Не ВыпускПродукцииНаЗатраты.Затрата ЕСТЬ NULL
	|	И ВыпускПродукции.Подразделение В (
	|		ВЫБРАТЬ РАЗЛИЧНЫЕ
	|			ВыпускПродукции.ПодразделениеПолучатель
	|		ИЗ
	|			РегистрНакопления.ВыпускПродукции%СуффиксУчета% КАК ВыпускПродукции
	|		ГДЕ 
	|			ВыпускПродукции.Период МЕЖДУ &НачДата И &КонДата
	|			И ВыпускПродукции.КодОперации В (&МассивКодыОперацийСписаниеНаЗатраты)
	|			//ДляРеглУчета И ВыпускПродукции.Организация = &Организация
	|		)
	|	//ДляРеглУчета И ВыпускПродукции.Организация = &Организация
	|";*/
			return null;
		}
		// СформироватьТекстЗапросаВыпускНаРаспределяемыеРасходы()
		// Процедура устанавливает параметры запроса для расчета таблицы переделов.
		//

		public void УстановитьПараметрыЗапросТабПеределов(/*СтруктураШапкиДокумента, Запрос*/)
		{
			//НачДата    = НачалоМесяца(СтруктураШапкиДокумента.Дата);
			//КонДата    = КонецМесяца (СтруктураШапкиДокумента.Дата);
			//Запрос.УстановитьПараметр("НачДата",      НачДата);
			//Запрос.УстановитьПараметр("КонДата",      КонДата);
			//Запрос.УстановитьПараметр("ПустСсылка",   Справочники.Номенклатура.ПустаяСсылка());
			//Запрос.УстановитьПараметр("Организация",  СтруктураШапкиДокумента.Организация);
			//Запрос.УстановитьПараметр("СпособОценкиСтоимости", Перечисления.СпособыОценкиСтоимостиВстречногоВыпуска.ПоРасчетнойСтоимости);
			//Запрос.УстановитьПараметр("ВидыПодразделений", СтруктураШапкиДокумента.ВидыПодразделенийДляРасчетаПоПодразделениям);
			//Запрос.УстановитьПараметр("КодФиксСтоим", Перечисления.КодыОперацийВыпускПродукции.ВыпускПродукцииПоФиксированнойСтоимости);
			//Запрос.УстановитьПараметр("КодОперацииНаПроизводство", Перечисления.КодыОперацийВыпускПродукции.ВыпускПродукцииФиксВнутрУслугиНаПроизводство);
			//Запрос.УстановитьПараметр("Материальные", Перечисления.ВидыЗатрат.Материальные);
			//МассивКодыОперацийСписаниеНаЗатраты = Новый Массив;
			//МассивКодыОперацийСписаниеНаЗатраты.Добавить(Перечисления.КодыОперацийВыпускПродукции.ВыпускПродукцииФиксВнутрУслугиНаПостЗатраты);
			//Запрос.УстановитьПараметр("МассивКодыОперацийСписаниеНаЗатраты", МассивКодыОперацийСписаниеНаЗатраты);
			if(true/*СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете*/)
			{
				//Запрос.УстановитьПараметр("СчетОбщепроизводственныеРасходы", ПланыСчетов.Хозрасчетный.ОбщепроизводственныеРасходы);
			}
			//МассивКодовОпераций = Новый Массив;
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ПрямыеЗатраты);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ВозвратМатериаловИзПроизводстваРасч);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ВозвратМатериаловИзПроизводстваФикс);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ОтрицательныеЗатраты);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.СписаниеНЗП);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.СписаниеНЗПФикс);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ОприходованиеНЗП);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.КорректировкаНЗПРасч);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.КорректировкаНЗПФикс);
			//Запрос.УстановитьПараметр("КодыОпераций",  МассивКодовОпераций);
			//МассивКодовОперацийКорректировка = Новый Массив;
			//МассивКодовОперацийКорректировка.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.КорректировкаНЗПРасч);
			//МассивКодовОперацийКорректировка.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.КорректировкаНЗПФикс);
			//Запрос.УстановитьПараметр("КодыОперацииКорректировка", МассивКодовОперацийКорректировка);
			//МассивКодовОперацийВозврат = Новый Массив;
			//МассивКодовОперацийВозврат.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ВозвратМатериаловИзПроизводстваРасч);
			//МассивКодовОперацийВозврат.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ВозвратМатериаловИзПроизводстваФикс);
			//МассивКодовОперацийВозврат.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.СписаниеНЗП);
			//МассивКодовОперацийВозврат.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.СписаниеНЗПФикс);
			//Запрос.УстановитьПараметр("КодыОперацииВозврат", МассивКодовОперацийВозврат);
			//МассивКодовОперацийОприходование = Новый Массив;
			//МассивКодовОперацийОприходование.Добавить(Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ОприходованиеНЗП);
			//Запрос.УстановитьПараметр("КодыОперацииОприходование", МассивКодовОперацийОприходование);
			//МассивКодовОперацийСписание = Новый Массив;
			//Запрос.УстановитьПараметр("КодыОперацииСписание", МассивКодовОперацийСписание);
			//Запрос.УстановитьПараметр("ПустаяНоменклатурнаяГруппа", Справочники.НоменклатурныеГруппы.ПустаяСсылка());
			//Запрос.УстановитьПараметр("ПустаяХарактеристика", Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка());
			//Запрос.УстановитьПараметр("ПустаяСерия", Справочники.СерииНоменклатуры.ПустаяСсылка());
		}
		// УстановитьПараметрыЗапросТабПеределов()
		// Функция формирует таблицу значений распределения затрат по продукции.
		//
		// Параметры
		//  СтруктураШапкиДокумента – Структура - Реквизиты документа "Расчет себестоимости"
		//
		// Возвращаемое значение:
		//   ТаблицаЗначений – Таблица распределения затрат по продукции.
		//

		public object СформироватьТаблицуРаспределенияЗатратПоПродукции(/*СтруктураШапкиДокумента*/)
		{
			if(true/*СтруктураШапкиДокумента.ОтражатьВНалоговомУчете*/)
			{
				//ТекстЗапросаСКомментариями = СформироватьТекстЗапросаНематериальныеПроизводственныеРасходыНУ();
			}
			/*ТекстЗапроса = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(
		ТекстЗапросаСКомментариями, 
		СтруктураШапкиДокумента.ВидОтраженияВУчете
	);*/
			//Запрос = Новый Запрос;
			//Запрос.Текст = ТекстЗапроса;
			//УстановитьПараметрыЗапросТабПеределов(СтруктураШапкиДокумента, Запрос);
			//ТабПеределов = Запрос.Выполнить().Выгрузить();
			return null;
		}
		// СформироватьТаблицуРаспределенияЗатратПоПродукции()
		// Процедура добавляет новую строку в таблицу корректировки продукции.
		//
		// Параметры
		//	СтрокаТаблицы - СтрокаТаблицыЗначений - Текущая строка таблицы
		//	Количество - Число - Количество продукции
		//	ТаблицаКорректировкиПродукции - ТаблицаЗначений - Таблица корректировки продукции.
		//

		public void ДобавитьСтрокуТаблицыПродукции(/*
	СтрокаТаблицы,
	Количество,
	ТаблицаКорректировкиПродукции
	*/)
		{
			//НоваяСтрока = ТаблицаКорректировкиПродукции.Добавить();
			//НоваяСтрока.Номенклатура = СтрокаТаблицы.Продукция;
			//НоваяСтрока.ХарактеристикаНоменклатуры = СтрокаТаблицы.ХарактеристикаПродукции;
			//НоваяСтрока.СерияНоменклатуры = СтрокаТаблицы.СерияПродукции;
			//НоваяСтрока.Количество = Количество;
		}
		// ДобавитьСтрокуВТаблицы()
		// Процедура создания таблиц продукции.
		//
		// Параметры
		//	НомерПередела - Число - Начальный номер передела
		//	Индекс - Число - Текущий номер таблицы затрат по переделам
		//	МаксИндекс - Число - Максимальный номер таблицы затрат по переделам
		//	ТаблицаЗатратПоПеределам - ТаблицаЗначений - Таблица затрат по переделам
		//	ТабПродукцииОприходование - ТаблицаЗначений - Таблица оприходования НЗП
		//	ТабПродукцииКорректировка - ТаблицаЗначений - Таблица корректировки НЗП
		//	ТабПродукцииВозврат - ТаблицаЗначений - Таблица возврата из НЗП
		//	ТабПродукции - ТаблицаЗначений - Таблица выпуска продукции.
		//

		public void СозданиеТаблицПродукции(/*
	НомерПередела,
	Индекс,
	МаксИндекс,
	ТаблицаЗатратПоПеределам,
	ТабПродукцииОприходование,
	ТабПродукцииКорректировка,
	ТабПродукцииВозврат,
	ТабПродукции
	*/)
		{
			//ЕстьВстречныйВыпуск = Ложь;
			while(true/*Индекс <= МаксИндекс*/)
			{
				//СтрокаТаблицы = ТаблицаЗатратПоПеределам[Индекс];
				if(true/*СтрокаТаблицы.ВстречныйВыпуск*/)
				{
					//СтрокаТаблицы.НомерПередела = 1;
					//ЕстьВстречныйВыпуск = Истина;
				}
				//Индекс = Индекс + 1;
			}
			if(true/*ЕстьВстречныйВыпуск*/)
			{
				//НомерПередела = НомерПередела + 1;
			}
		}
		// СозданиеТаблицПродукции()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ УСТАНОВКИ НОМЕРОВ ПЕРЕДЕЛОВ В ТАБЛИЦАХ
		// Процедура устанавливает номер передела для затрат по таблицы продукции.
		//
		// Параметры
		//	НомерПередела - Число - Текущий номер передела
		//	ОприходованиеНЗП - Булево - Признак таблицы оприходования НЗП
		//	КорректировкаНЗП - Булево - Признак таблицы корректировки НЗП
		//	ВозвратИзНЗП - Булево - Признак таблицы возврата из НЗП
		//	КосвенныеЗатраты - Булево - Признак таблицы списания на косвенные затраты
		//	УчитыватьСписаниеНЗП - Булево - Признак необходимости учитывать списание НЗП
		//	ПроставленПередел - Булево - Признак, что был проставлен номер передела
		//	ТаблицаПродукции - ТаблицаЗначений - Таблица продуции
		//	ТаблицаЗатратПоПеределам - ТаблицаЗначений - Таблица распределения затрат по переделам
		//	ТаблицаПродукцииУстановленные - ТаблицаЗначений - Таблица продукции, для которой был установлен номер передела.
		//

		public void УстановитьНомерПеределаПоТаблице(/*
	НомерПередела,
	ОприходованиеНЗП,
	КорректировкаНЗП,
	ВозвратИзНЗП,
	УчитыватьСписаниеНЗП,
	ПроставленПередел,
	ТаблицаПродукции,
	ТаблицаЗатратПоПеределам,
	ТаблицаПродукцииУстановленные
	*/)
		{
			if(true/*ТаблицаПродукции.Количество() = 0*/)
			{
			}
			//СтруктураПоиска = Новый Структура;
			//МассивУдаляемыхСтрок = Новый Массив;
			//СтруктураПоиска.Вставить("Количество", 0);
			//МассивСтрок = ТаблицаПродукции.НайтиСтроки(СтруктураПоиска);
		}
		// УстановитьНомерПеределаПоТаблице()
		// Функция устанавливает номер передела в таблице затрат.
		//
		// Параметры
		//	НомерПередела - Число - Текущий номер передела
		//	ТабПродукцииОприходование - ТаблицаЗначений - Таблица оприходования НЗП
		//	ТабПродукцииКорректировка - ТаблицаЗначений - Таблица корректировки НЗП
		//	ТабПродукцииВозврат - ТаблицаЗначений - Таблица возврата из НЗП
		//	ТабПродукции - ТаблицаЗначений - Таблица выпуска продукции
		//	ТаблицаЗатратПоПеределам - ТаблицаЗначений - Таблица затрат по переделам
		//	ТаблицаПродукцииУстановленные - ТаблицаЗначений - Таблица продукции, для которой был установлен номер передела.
		//
		// Возвращаемое значение:
		//	Булево - 	Истина - Номер передела установлен
		//				Ложь - Не удалось установить номер передела для строк таблицы затрат.
		//

		public object УстановитьНомерПеределаВТаблицеЗатрат(/*
	НомерПередела,
	ТабПродукцииОприходование,
	ТабПродукцииКорректировка,
	ТабПродукцииВозврат,
	ТабПродукции,
	ТаблицаЗатратПоПеределам,
	ТабПродукцияУстановленные
	*/)
		{
			//ПроставленПередел = Ложь;
			/*// Обрабатываем таблицу оприходования.
*/
			/*// ОприходованиеНЗП,
*/
			/*// КорректировкаНЗП,
*/
			/*// ВозвратИзНЗП,
*/
			/*// УчитыватьСписаниеНЗП
*/
			/*ПроставленПередел,
		ТабПродукцииОприходование,
		ТаблицаЗатратПоПеределам,
		ТабПродукцияУстановленные
		);*/
			/*// Обрабатываем таблицу корректировки.
*/
			/*// ОприходованиеНЗП,
*/
			/*// КорректировкаНЗП,
*/
			/*// ВозвратИзНЗП,
*/
			/*// УчитыватьСписаниеНЗП
*/
			/*ПроставленПередел,
		ТабПродукцииКорректировка,
		ТаблицаЗатратПоПеределам,
		ТабПродукцияУстановленные
		);*/
			/*// Обрабатываем таблицу возвратов.
*/
			/*// ОприходованиеНЗП,
*/
			/*// КорректировкаНЗП,
*/
			/*// ВозвратИзНЗП,
*/
			/*// УчитыватьСписаниеНЗП
*/
			/*ПроставленПередел,
		ТабПродукцииВозврат,
		ТаблицаЗатратПоПеределам,
		ТабПродукцияУстановленные
		);*/
			/*// Обрабатываем таблицу производства.
*/
			/*// ОприходованиеНЗП,
*/
			/*// КорректировкаНЗП,
*/
			/*// ВозвратИзНЗП,
*/
			/*// УчитыватьСписаниеНЗП
*/
			/*ПроставленПередел,
		ТабПродукции,
		ТаблицаЗатратПоПеределам,
		ТабПродукцияУстановленные
		);*/
			return null;
		}
		// УстановитьНомерПеределаВТаблицахПродукции();
		// Функция устанавливает признак встречного выпуска в таблице затрат.
		//
		// Параметры
		//	Индекс - Число - Текущий номер таблицы затрат по переделам
		//	МаксИндекс - Число - Максимальный номер таблицы затрат по переделам
		//	ТаблицаЗатратПоПеределам - ТаблицаЗначений - Таблица затрат по переделам
		//
		// Возвращаемое значение:
		//	Булево - 	Истина - Номер передела установлен
		//				Ложь - Не удалось установить номер передела для строк таблицы затрат.
		//
		//

		public object УстановитьПризнакВстречногоВыпускаВТаблицеЗатрат(/*
	Индекс,
	МаксИндекс,
	ТаблицаЗатратПоПеределам
	*/)
		{
			//ПроставленПередел = Ложь;
			//СтруктураПоиска = Новый Структура;
			//ИндексСтроки = Индекс;
			while(true/*ИндексСтроки <= МаксИндекс*/)
			{
				//СтрокаТаблицы = ТаблицаЗатратПоПеределам[ИндексСтроки];
				if(true/*СтрокаТаблицы.КосвенныеЗатраты*/)
				{
					//СтруктураПоиска.Очистить();
					//СтруктураПоиска.Вставить("Продукция", СтрокаТаблицы.Продукция);
					//СтруктураПоиска.Вставить("ХарактеристикаПродукции", СтрокаТаблицы.ХарактеристикаПродукции);
					//СтруктураПоиска.Вставить("СерияПродукции", СтрокаТаблицы.СерияПродукции);
					//СтруктураПоиска.Вставить("ОприходованиеНЗП", Ложь);
					//СтруктураПоиска.Вставить("КорректировкаНЗП", Ложь);
					//СтруктураПоиска.Вставить("ВозвратИзНЗП", Ложь);
					//СтруктураПоиска.Вставить("ВстречныйВыпуск", Ложь);
					//СтруктураПоиска.Вставить("НематериальныеЗатраты", Ложь);
					//МассивСтрок = ТаблицаЗатратПоПеределам.НайтиСтроки(СтруктураПоиска);
					if(true/*ПроставленПередел*/)
					{
						/*// Проставим признак встречного выпуска для строк с аналогичной аналитикой.
*/
						//СтруктураПоиска.Очистить();
						//СтруктураПоиска.Вставить("Подразделение", СтрокаТаблицы.Подразделение);
						//СтруктураПоиска.Вставить("НоменклатурнаяГруппа", СтрокаТаблицы.НоменклатурнаяГруппа);
						//СтруктураПоиска.Вставить("СтатьяЗатрат", СтрокаТаблицы.СтатьяЗатрат);
						//СтруктураПоиска.Вставить("КосвенныеЗатраты", Истина);
						//МассивСтрок = ТаблицаЗатратПоПеределам.НайтиСтроки(СтруктураПоиска);
					}
				}
				//ИндексСтроки = ИндексСтроки + 1;
			}
			return null;
		}
		// УстановитьПризнакВстречногоВыпускаВТаблицеЗатрат()
		// Процедура выводить сообщения об ошибках при распределении затрат по переделам.
		//
		// Параметры
		//	Индекс - Число - Текущий номер таблицы затрат по переделам
		//	МаксИндекс - Число - Максимальный номер таблицы затрат по переделам
		//	ТаблицаЗатратПоПеределам - ТаблицаЗначений - Таблица затрат по переделам
		//

		public void ВывестиСообщенияОбОшибкахРаспределенияПоПеределам(/*
	Индекс,
	МаксИндекс,
	ТаблицаЗатратПоПеределам
	*/)
		{
			/*ТаблицаОшибок = УправлениеПроизводством.КопироватьСтруктуруТаблицыЗначений(ТаблицаЗатратПоПеределам, "
		|Подразделение, 
		|НоменклатурнаяГруппа, 
		|СтатьяЗатрат, 
		|Затрата, 
		|ХарактеристикаЗатраты, 
		|СерияЗатраты, 
		|Продукция, 
		|ХарактеристикаПродукции, 
		|СерияПродукции
		|");*/
			//ИндексСтроки = Индекс;
			while(true/*ИндексСтроки <= МаксИндекс*/)
			{
				//СтрокаТаблицы = ТаблицаЗатратПоПеределам[ИндексСтроки];
				/*// Заполняем таблицу ошибок, если затрата не относится к косвенным расходам.
*/
				if(true/*Не СтрокаТаблицы.КосвенныеЗатраты*/)
				{
					//НоваяСтрока = ТаблицаОшибок.Добавить();
					//ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТаблицы);
				}
				//ИндексСтроки = ИндексСтроки + 1;
			}
			/*;
				
	ТаблицаОшибок.Свернуть("
		|Подразделение, 
		|НоменклатурнаяГруппа, 
		|СтатьяЗатрат, 
		|Затрата, 
		|ХарактеристикаЗатраты, 
		|СерияЗатраты, 
		|Продукция, 
		|ХарактеристикаПродукции, 
		|СерияПродукции");*/
			/*// Выведем сообщения о нераспределенных по переделам затрат.
*/
			if(true/*ТаблицаОшибок.Количество() > 0*/)
			{
				//ОбщегоНазначения.СообщитьОбОшибке("Не выполнено распределение по переделам для затрат: ");
			}
		}
		// ВывестиСообщенияОбОшибкахРаспределенияПоПеределам()
		// Процедура заполняет количество продукции в переданной таблице значений.
		//
		// Параметры
		//	ТаблицаПродукции - ТаблицаЗначений - Таблица продуции
		//	ТаблицаКорректировкиПродукции - ТаблицаЗначений - Таблица корректировки продукции
		//		(оприходование, корректировка, возврат).
		//

		public void ЗаполнитьКоличествоВыпускаВТаблице(/*
	ТаблицаПродукции,
	ТаблицаКорректировкиПродукции
	*/)
		{
			//ПараметрыПоиска = Новый Структура;
		}
		// ЗаполнитьКоличествоВыпускаВТаблице()
		// Функция создает структуру переделов по продукции
		//
		// Параметры:
		//  СтруктураШапкиДокумента – Структура - Реквизиты документа "Расчет себестоимости"
		//	ТабПеределов - ТаблицаЗначений - Таблица распределения затрат по продукции
		//	ТабПродукция - ТаблицаЗначений - Таблица распределения продукции по переделам
		//

		public void СоздатьТабПеределов(/*
	СтруктураШапкиДокумента, 
	ТабПеределов, 
	ТабПродукция
	*/)
		{
			//ТабПеределов.Колонки.Добавить("НомерПередела", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(12, 0)));
			//ТабПродукции = Новый ТаблицаЗначений();
			//ТабПродукции.Колонки.Добавить("Номенклатура");
			//ТабПродукции.Колонки.Добавить("ХарактеристикаНоменклатуры");
			//ТабПродукции.Колонки.Добавить("СерияНоменклатуры");
			//ТабПродукции.Колонки.Добавить("Количество",Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(12, 0)));
			//ТабПродукцииОприходование = ТабПродукции.Скопировать();
			//ТабПродукцииКорректировка = ТабПродукции.Скопировать();
			//ТабПродукцииВозврат 	  = ТабПродукции.Скопировать();
			//МаксНомерПередела = 0;
			//ПараметрыПоиска = Новый Структура;
			/*//Определим затраты которые не являются продукцией
*/
			//Табпродукции.Свернуть("Номенклатура,ХарактеристикаНоменклатуры,СерияНоменклатуры","Количество");
			//ТабПродукции.Очистить();
			//ТабПеределов.Сортировать("НомерПередела Убыв");
			//ТекСтрока = ТабПеределов.Найти(0, "НомерПередела");
			if(true/*ТекСтрока = Неопределено*/)
			{
				//Индекс = ТабПеределов.Количество()-1;
			}
			//МаксИндекс = ТабПеределов.Количество() - 1;
			//ТекПередел = МаксНомерПередела + 1;
			/*// Заполним таблицы выпуска и корректировки продукции.
*/
			/*СозданиеТаблицПродукции(
		ТекПередел,
		Индекс,
		МаксИндекс,
		ТабПеределов,
		ТабПродукцииОприходование,
		ТабПродукцииКорректировка,
		ТабПродукцииВозврат,
		ТабПродукции
		);*/
			//Табпродукции.Свернуть("Номенклатура,ХарактеристикаНоменклатуры,СерияНоменклатуры","Количество");
			//ТабпродукцииОприходование.Свернуть("Номенклатура,ХарактеристикаНоменклатуры,СерияНоменклатуры","Количество");
			//ТабпродукцииКорректировка.Свернуть("Номенклатура,ХарактеристикаНоменклатуры,СерияНоменклатуры","Количество");
			//ТабПродукцииВозврат.Свернуть("Номенклатура,ХарактеристикаНоменклатуры,СерияНоменклатуры","Количество");
			/*// Обрабатываем таблицу оприходования.
*/
			/*ЗаполнитьКоличествоВыпускаВТаблице(
		ТабПродукции,
		ТабПродукцииОприходование
		);*/
			/*// Обрабатываем таблицу корректировки.	
*/
			/*ЗаполнитьКоличествоВыпускаВТаблице(
		ТабПродукции,
		ТабПродукцииКорректировка
		);*/
			/*// Обрабатываем таблицу возвратов.
*/
			/*ЗаполнитьКоличествоВыпускаВТаблице(
		ТабПродукции,
		ТабПродукцииВозврат
		);*/
			//ТабПродукцияУстановленные = Новый ТаблицаЗначений();
			//ТабПродукцияУстановленные.Колонки.Добавить("Номенклатура");
			//ТабПродукцияУстановленные.Колонки.Добавить("ХарактеристикаНоменклатуры");
			//ТабПродукцияУстановленные.Колонки.Добавить("СерияНоменклатуры");
			//СчетчикКоличестваЦиклов = 0;
			//ПроставленПередел = Истина;
			while(true/*ПроставленПередел*/)
			{
				//ПроставленПередел = Ложь;
				//ТабПродукцияУстановленные.Очистить();
				/*// Проверим контрольный счетчик.
*/
				if(true/*СчетчикКоличестваЦиклов >= 1000*/)
				{
				}
				//СчетчикКоличестваЦиклов = СчетчикКоличестваЦиклов + 1;
				/*// Установим номер передела в таблице затрат.
*/
				/*ПроставленПередел = УстановитьНомерПеределаВТаблицеЗатрат(
			ТекПередел,
			ТабПродукцииОприходование,
			ТабПродукцииКорректировка,
			ТабПродукцииВозврат,
			ТабПродукции,
			ТабПеределов,
			ТабПродукцияУстановленные
			);*/
				//ТабПеределов.Сортировать("НомерПередела Убыв");
				//ТекСтрока = ТабПеределов.Найти(0, "НомерПередела");
				/*// Если нет строк с пустыми переделами, выходим из цикла.
*/
				if(true/*ТекСтрока = Неопределено*/)
				{
				}
				//Индекс = ТабПеределов.Индекс(ТекСтрока);
				//НовыйНомерПередела = Истина;
				/*// Если переделы проставить не удалось, попробуем заполнить встречный выпуск.
*/
				if(true/*Не ПроставленПередел*/)
				{
					/*ПроставленПередел = УстановитьПризнакВстречногоВыпускаВТаблицеЗатрат(
				Индекс,
				МаксИндекс,
				ТабПеределов
				);*/
					if(true/*ПроставленПередел*/)
					{
						//ТабПеределов.Сортировать("НомерПередела Убыв");
						//ТекСтрока = ТабПеределов.Найти(0, "НомерПередела");
						if(true/*ТекСтрока <> Неопределено*/)
						{
							//Индекс = ТабПеределов.Индекс(ТекСтрока);
						}
						//НовыйНомерПередела = Ложь;
					}
				}
				/*// Если переделы проставить не удалось, выведем сообщения об ошибках.
*/
				if(true/*Не ПроставленПередел*/)
				{
					/*ВывестиСообщенияОбОшибкахРаспределенияПоПеределам(
				Индекс,
				МаксИндекс,
				ТабПеределов
				);*/
				}
				//ТабПродукции.ЗаполнитьЗначения(0,"Количество");
				//ТабПродукцииОприходование.ЗаполнитьЗначения(0,"Количество");
				//ТабПродукцииКорректировка.ЗаполнитьЗначения(0,"Количество");
				//ТабПродукцииВозврат.ЗаполнитьЗначения(0,"Количество");
				while(true/*Индекс <= МаксИндекс*/)
				{
					//СтрокаТЗ   = ТабПеределов[Индекс];
					if(true/*(Не СтрокаТЗ.ОприходованиеНЗП) 
			   И (Не СтрокаТЗ.КорректировкаНЗП) 
			   И (Не СтрокаТЗ.ВозвратИзНЗП) 
			   И (Не СтрокаТЗ.СписаниеНЗП)
			   И (Не СтрокаТЗ.ВстречныйВыпуск)
			   И СтрокаТЗ.НомерПередела = 0*/)
					{
						//НовСтрока = ТабПродукции.Добавить();
						//НовСтрока.Номенклатура = СтрокаТЗ.Продукция;
						//НовСтрока.ХарактеристикаНоменклатуры = СтрокаТЗ.ХарактеристикаПродукции;
						//НовСтрока.СерияНоменклатуры = СтрокаТЗ.СерияПродукции;
						//НовСтрока.Количество = 1;
					}
					//Индекс = Индекс + 1;
				}
				/*;
		ТабПродукции.Свернуть("Номенклатура,ХарактеристикаНоменклатуры,СерияНоменклатуры","Количество");*/
				//ТабПродукцииОприходование.Свернуть("Номенклатура,ХарактеристикаНоменклатуры,СерияНоменклатуры","Количество");
				//ТабПродукцииКорректировка.Свернуть("Номенклатура,ХарактеристикаНоменклатуры,СерияНоменклатуры","Количество");
				//ТабПродукцииВозврат.Свернуть("Номенклатура,ХарактеристикаНоменклатуры,СерияНоменклатуры","Количество");
				/*// Обрабатываем таблицу оприходования.
*/
				/*ЗаполнитьКоличествоВыпускаВТаблице(
			ТабПродукции,
			ТабПродукцииОприходование
			);*/
				/*// Обрабатываем таблицу корректировки.	
*/
				/*ЗаполнитьКоличествоВыпускаВТаблице(
			ТабПродукции,
			ТабПродукцииКорректировка
			);*/
				/*// Обрабатываем таблицу возвратов.
*/
				/*ЗаполнитьКоличествоВыпускаВТаблице(
			ТабПродукции,
			ТабПродукцииВозврат
			);*/
				if(true/*НовыйНомерПередела*/)
				{
					//ТекПередел = ТекПередел + 1;
				}
			}
			/*// Пока ПроставленПередел
*/
			if(true/*ТабПеределов.Найти(Истина, "НематериальныеЗатраты") <> Неопределено*/)
			{
				/*// Для нематериальных затрат установим максимальный номер передела из рассчитанных.
*/
				//ТаблицаНематериальныхЗатрат = ТабПеределов.Скопировать();
				//ТаблицаНематериальныхЗатрат.Свернуть("НематериальныеЗатраты, Подразделение, СтатьяЗатрат, Затрата, НомерПередела");
				//СтруктураПоиска = Новый Структура;
				//СтруктураПоиска.Вставить("НематериальныеЗатраты", Истина);
				//СтруктураПоиска.Вставить("Затрата", Неопределено);
				//МассивСтрокЗатрат = ТабПеределов.НайтиСтроки(СтруктураПоиска);
			}
			/*// Продукция выпущенная на переделе.
*/
			//ТабТемп = ТабПеределов.Скопировать();
			/*// Рассчитаем максимальный уровень передела для продукции
*/
			//ТабТемп.Свернуть("Подразделение, Продукция, ХарактеристикаПродукции, СерияПродукции, НомерПередела, ОприходованиеНЗП, КорректировкаНЗП, ВозвратИзНЗП, СписаниеНЗП");
			//ТабПродукция = ТабТемп.Скопировать();
			//ТабПродукция.Свернуть("Подразделение, Продукция, ХарактеристикаПродукции, СерияПродукции, ОприходованиеНЗП, КорректировкаНЗП, ВозвратИзНЗП, СписаниеНЗП");
			//ТабПродукция.Колонки.Добавить("НомерПередела", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(12, 0)));
			//СтруктПоиска = Новый Структура;
			//ТабПродукция.Сортировать("НомерПередела Возр");
			//ТабТемп = 0;
			//ТабПеределов.Свернуть("Подразделение, НоменклатурнаяГруппа, СтатьяЗатрат, Затрата, ХарактеристикаЗатраты, СерияЗатраты, НомерПередела, ВстречныйВыпуск, ОприходованиеНЗП, КорректировкаНЗП, ВозвратИзНЗП");
			//ТабПеределов.Сортировать("НомерПередела Возр");
			//ТабПродукция.Свернуть("Подразделение, Продукция, ХарактеристикаПродукции, СерияПродукции, НомерПередела, ОприходованиеНЗП, КорректировкаНЗП, ВозвратИзНЗП");
			//ТабПродукция.Сортировать("НомерПередела Возр");
			if(true/*не СтруктураШапкиДокумента.ОтражатьВУправленческомУчете*/)
			{
				//ТабПеределов.Колонки.добавить("Организация");
				//ТабПеределов.ЗаполнитьЗначения(СтруктураШапкиДокумента.Организация, "Организация");
				//ТабПродукция.Колонки.добавить("Организация");
				//ТабПродукция.ЗаполнитьЗначения(СтруктураШапкиДокумента.Организация, "Организация");
			}
		}
		// СоздатьТабПеределов()
		// Процедура производит распределение продукции и затрат по переделам.
		//

		public void РаспределениеПродукцииИЗатратПоПеределам(/*СтруктураШапкиДокумента*/)
		{
			if(true/*Не СтруктураШапкиДокумента.ОтражатьВУправленческомУчете 
	   И Не СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете
	   И Не СтруктураШапкиДокумента.ОтражатьВНалоговомУчете*/)
			{
			}
			//ОбщегоНазначения.Сообщение("Распределение продукции и затрат по переделам");
			//ДокументОбъект = СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект();
			if(true/*СтруктураШапкиДокумента.ОтражатьВУправленческомУчете*/)
			{
				//ДвиженияРаспределениеПродукцииПоПеределам 	= ДокументОбъект.Движения.РаспределениеПродукцииПоПеределам;
				//ДвиженияРаспределениеЗатратПоПеределам 		= ДокументОбъект.Движения.РаспределениеЗатратПоПеределам;
			}
			//РаспределениеПродукцииПоПеределам = ДвиженияРаспределениеПродукцииПоПеределам.Выгрузить();
			//РаспределениеПродукцииПоПеределам.Очистить();
			//РаспределениеЗатратПоПеределам = ДвиженияРаспределениеЗатратПоПеределам.Выгрузить();
			//РаспределениеЗатратПоПеределам.Очистить();
			//ТабПеределов = СформироватьТаблицуРаспределенияЗатратПоПродукции(СтруктураШапкиДокумента);
			//ТабПродукция = Новый ТаблицаЗначений;
			if(true/*ТабПеределов.Количество() = 0*/)
			{
			}
			//СоздатьТабПеределов(СтруктураШапкиДокумента, ТабПеределов, ТабПродукция);
			//ДвиженияРаспределениеПродукцииПоПеределам.Очистить();
			//ДвиженияРаспределениеПродукцииПоПеределам.Записать();
			if(true/*РаспределениеПродукцииПоПеределам.Количество() > 0*/)
			{
				//ДвиженияРаспределениеПродукцииПоПеределам.мПериод = НачалоМесяца(СтруктураШапкиДокумента.Период);
				//ДвиженияРаспределениеПродукцииПоПеределам.мТаблицаДвижений = РаспределениеПродукцииПоПеределам;
				//ДвиженияРаспределениеПродукцииПоПеределам.ВыполнитьДвижения();
				//ДвиженияРаспределениеПродукцииПоПеределам.Записать();
			}
			//ДвиженияРаспределениеЗатратПоПеределам.Очистить();
			//ДвиженияРаспределениеЗатратПоПеределам.Записать();
			if(true/*РаспределениеЗатратПоПеределам.Количество() > 0*/)
			{
				//ДвиженияРаспределениеЗатратПоПеределам.мПериод = НачалоМесяца(СтруктураШапкиДокумента.Период);
				//ДвиженияРаспределениеЗатратПоПеределам.мТаблицаДвижений = РаспределениеЗатратПоПеределам;
				//ДвиженияРаспределениеЗатратПоПеределам.ВыполнитьДвижения();
				//ДвиженияРаспределениеЗатратПоПеределам.Записать();
			}
		}
		// РаспределениеПродукцииИЗатратПоПеределам()
	}
}
